package com.molinari.coding.dati;

import java.util.ArrayList;
import java.util.Arrays;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

import com.molinari.androidstructure.data.db.DatabaseAndroid;
import com.molinari.coding.R;

public class DatabaseAndroidCoding extends DatabaseAndroid {
	
	private static final String DATABASE_NAME = "CodIng.db";
	// cambiando la versione viene eseguito l'onupgrade e quindi rieseguito il create
	private static final int DATABASE_VERSION = 3;

	public DatabaseAndroidCoding(Context context, CursorFactory cursorFactory) {
		super(context, DATABASE_NAME, cursorFactory, DATABASE_VERSION);
	}
	
	public DatabaseAndroidCoding(final Context context) {
		super(context, DATABASE_NAME, DATABASE_VERSION);
	}

	@Override
	public String[] queryUpdateDb() {
		ArrayList<String> listSql = new ArrayList<String>();
		// e' necessario eliminare le tabelle se gia' create altrimenti non funziona l'aggiornamento
		listSql.add("DROP TABLE IF EXISTS " + "Utenti");
		listSql.add("DROP TABLE IF EXISTS " + "Cella");
		listSql.addAll(Arrays.asList(queryCreateDb()));
		return listSql.toArray(new String[listSql.size()]);
	}

	@Override
	public String[] queryCreateDb() {
		ArrayList<String> listSql = new ArrayList<String>();
		String sql = new String();
		sql = "CREATE TABLE Utenti (idUtente INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE , nome TEXT NOT NULL , cognome TEXT NOT NULL , username TEXT NOT NULL  UNIQUE , password TEXT NOT NULL );";
		listSql.add(sql);
		sql = "CREATE TABLE Cella (idCella INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , chiave TEXT NOT NULL , uno TEXT NOT NULL , due TEXT NOT NULL, tre TEXT NOT NULL, idUtente INTEGER NOT NULL );";
		listSql.add(sql);
		return listSql.toArray(new String[listSql.size()]);
	}
}
